﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using IdentityServer4.Models;
using Microsoft.AspNetCore.Mvc;

namespace IdentityServer
{
    public static class Config
    {
        //定义受保护API
        public static IEnumerable<ApiScope> ApiScopes =>
            new List<ApiScope>
            {
                  new ApiScope("api1", "My API")
            };


        //定义客户端

        // 定义访问 API 的客户端应用
        // 这种情况下，客户端没有交互式的用户，只能通过客户端密钥进行身份验证。

        // ClientId 和 Client Secret 可以视为登录名和密码。让身份认证服务器知道是哪个用户。
        public static IEnumerable<Client> Clients => new List<Client>
         {
        new Client
        {
            // 定义一个客户端
            ClientId = "client",

            // 认证类型。
            //使用客户端密钥的方式进行验证。

            AllowedGrantTypes = GrantTypes.ClientCredentials,

            // 认证的密码
            ClientSecrets =
            {
                new Secret("secret".Sha256())
            },
            // 客户端可以访问的范围。
            AllowedScopes = { "api1" }
        }
    };
    }
}
